void Merge (SqList *L, int i, int m, int n) // 归并有序序列 L->elem[i..m] 和 L->elem[m+1..n]
{
	for (j=i; j<=n;  ++j)
		R[j] = L.elem[j] ;    //复制
	for (j=m+1, k=i;  i<=m && j<=n;  ++k)   
	{	// 将R中记录由小到大地并入L
		if (R[i]<=R[j])  L->elem[k] = R[i++];
		else L->elem[k] = R[j++];
		if (i<=m) L->elem[k..n] = R[i..m];
					// 将剩余的 R[i..m] 复制到 L
		if (j<=n) L->elem[k..n] = R[j..n];
					// 将剩余的 R[j..n] 复制到 L
	}
} // Merge

void MergeSort ( SqList *L, int s, int t ) 
{
	if (s < t) 
	{
		m = (s+t)/2;			// 分解         
		MergeSort (L, s, m);	// 解决
		MergeSort (L, m+1, t);
		Merge (L, s, m, t);		// 合并
    }
} // Msort